﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TelerikAcademyOopProject
{
    public abstract class Trader
    {
        /*==========================================*/
        //              Trader FIELDS
        /*==========================================*/

        // presonal trader data
        private string               id;

        private string               name;
        private string               password;
        
        // global trader data
        private Account              traderAccount;

        // list of Items
        private List<Item>           itemes;

        // Stock manager
        private StockManager manager;




        /*==========================================*/
        //              Trader PROPERTIES
        /*==========================================*/

        public string Id
        {
          get { return id; }
          set { id = value; }
        }

        public string Name
        {
            get { return name;  }
            set { name = value; }
        }

        public string Password
        {
            get { return password; }
            set { password = value; }
        }
        public Account TraderAccount
        {
            get { return traderAccount;  }
            set { traderAccount = value; }
        }

        public List<Item> Itemes
        {
            get { return itemes; }
            set { itemes = value; }
        }

        public StockManager Manager
        {
            get { return manager; }
            set { manager = value; }
        }

        /*==========================================*/
        //              Trader METODS
        /*==========================================*/

        public void setTraderProperties(string id, string n, string p, Account ta,StockManager sm)
        {
            this.Id             = id;
            this.Name           = n;
            this.Password       = p;
            this.TraderAccount  = ta;
            this.Manager        = sm;
        }

        public virtual void Deposit(decimal amount)
        { }

        public virtual void Withdraw(decimal amount)
        { }

    }
}
